1879C - Make it Alternating - CodeForces Solution


combinatorics

Please click on ads to support us..

C++ Code:

#include<bits/stdc++.h>
using namespace std;
int mod=998244353;
const int m=1e6;
long long a[m];
void solve(){
//int a[m];
a[0]=1;
a[1]=1;
for(int i=2;i<m;i++){
    a[i]=(a[i-1]*i)%mod;
}
}
int main(){
    int t;
    cin>>t;
    solve();
    while(t--){
        string s;
        cin>>s;
        int n=s.size();
        long long cnt=1,cnt1=1;
        vector<int>v;
        for(int i=0;i<s.size()-1;i++){
          if(s[i]==s[i+1])cnt++;
          if(s[i]!=s[i+1]){
             if(cnt>1) v.push_back(cnt);
              cnt=1;
          }
        }
        v.push_back(cnt);
        
        long long sum=0,type=1;
        for(int i=0;i<v.size();i++){
            sum+=(v[i]-1);
            type=(type*v[i])%mod;
        }
      type=(type*a[sum])%mod;
      cout<<sum<<" "<<type<<endl;
        
      /*  long long n;
        cin>>n;
        long long a[n];
        long long b[n];
        for(int i=0;i<n;i++){
               cin>>a[i];
           }
    for(int i=0;i<n;i++){
        cin>>b[i];
    }
    
    sort(a,a+n);
    sort(b,b+n);
    int sum1=0,sum2=0;
    
    for(int i=0;i<n;i++){
        sum1+=a[i];
        sum2+=b[i];
    }
    sum1=sum1+n*b[0];
    sum2=sum2+n*a[0];
    cout<<min(sum1,sum2)<<endl;
    
    
    
    
    
    
    
    
    
    
   bool flag =false;
    for(int i=1;i<n;i++){
        if(a[i][0]>=a[0][0]&&a[i][1]>=a[0][1])flag=true;
    }
    if(flag){
        cout<<-1<<endl;
    }
    else{
        cout<<a[0][0]<<endl;
    }*/
    }
     return 0;
}


Comments

Submit
0 Comments
More Questions

1654C - Alice and the Cake
369A - Valera and Plates
1626A - Equidistant Letters
977D - Divide by three multiply by two
1654B - Prefix Removals
1654A - Maximum Cake Tastiness
1649A - Game
139A - Petr and Book
1612A - Distance
520A - Pangram
124A - The number of positions
1041A - Heist
901A - Hashing Trees
1283A - Minutes Before the New Year
1654D - Potion Brewing Class
1107B - Digital root
25A - IQ test
785A - Anton and Polyhedrons
1542B - Plus and Multiply
306A - Candies
1651C - Fault-tolerant Network
870A - Search for Pretty Integers
1174A - Ehab Fails to Be Thanos
1169A - Circle Metro
780C - Andryusha and Colored Balloons
1153A - Serval and Bus
1487C - Minimum Ties
1136A - Nastya Is Reading a Book
1353B - Two Arrays And Swaps
1490E - Accidental Victory